{\rtf1\ansi\ansicpg936\cocoartf1348\cocoasubrtf170
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset134 STHeitiSC-Light;\f2\fnil\fcharset134 FZLTXHK--GBK1-0;
\f3\fnil\fcharset0 HelveticaNeue;}
{\colortbl;\red255\green255\blue255;\red83\green83\blue83;\red38\green38\blue38;\red255\green255\blue255;
}
\paperw11900\paperh16840\margl1440\margr1440\vieww26060\viewh12860\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural

\f0\fs24 \cf0 \
#pragma mark - life cycle \
#pragma mark - delagete\
#pragma mark - event response\
#pragma mark - private methods  
\f1 \'be\'a1\'c1\'a6\'b7\'d6\'c4\'a3\'bf\'e9\'b3\'f6\'c0\'b4
\f0  \
#pragma mark - getter 
\f1 and setters  \
\
\
\
\
\
\'b2\'bc\'be\'d6\'b5\'c4\'c8\'fd\'b8\'f6\'d1\'a1\'d4\'f1\
fram\
frame  \'b5\'c4\'cc\'e6\'b4\'fa\'c6\'b7 {\field{\*\fldinst{HYPERLINK "https://github.com/casatwy/HandyAutoLayout"}}{\fldrslt https://github.com/casatwy/HandyAutoLayout}}
\f0\fs40 \cf2 \expnd0\expndtw0\kerning0
\

\f1\fs24 \cf0 \kerning1\expnd0\expndtw0 autolayout\
autolayout \'b5\'c4\'cc\'e6\'b4\'fa\'c6\'b7Masonry   {\field{\*\fldinst{HYPERLINK "https://github.com/desandro/masonry"}}{\fldrslt https://github.com/desandro/masonry}}\
\
\
\
\
BaseViewController \'bc\'cc\'b3\'d0\'b5\'c4\'ce\'ca\'cc\'e2\
\'d2\'bb\'b8\'f6\'bf\'c9\'cc\'e6\'b4\'fa\'b7\'bd\'b0\'b8\'a3\'ac \'d2\'d4\'c0\'b9\'bd\'d8\'b7\'bd\'b7\'a8\'b5\'c4\'b7\'bd\'ca\'bd\'cc\'ed\'bc\'d3\'cc\'d8\'d5\'f7\'b4\'fa\'c2\'eb\'a1\'a3  \uc0\u223 \
\
\
\
\
\
\'cd\'f8\'c2\'e7\'b5\'c4\'ce\'ca\'cc\'e2\
\pard\pardeftab720\sl504
\cf0 \expnd0\expndtw0\kerning0
\'be\'a1\'bf\'c9\'c4\'dc\'cd\'a8\'b9\'fdDelegate\'b5\'c4\'bb\'d8\'b5\'f7\'b7\'bd\'ca\'bd\'bd\'bb\'b8\'b6\'ca\'fd\'be\'dd\'a3\'ac\'d5\'e2\'d1\'f9\'bf\'c9\'d2\'d4\'b1\'dc\'c3\'e2\'b2\'bb\'b1\'d8\'d2\'aa\'b5\'c4\'bf\'e7\'b2\'e3\'b7\'c3\'ce\'ca\'a1\'a3\'b5\'b1\'b3\'f6\'cf\'d6\'bf\'e7\'b2\'e3\'b7\'c3\'ce\'ca\'b5\'c4\'d0\'e8\'c7\'f3\'ca\'b1\'a3\'a8\'b1\'c8\'c8\'e7\'d0\'c5\'ba\'c5\'c0\'e0\'d0\'cd\'c7\'d0\'bb\'bb\'a3\'a9\'a3\'ac\
\'cd\'a8\'b9\'fdNotification\'b5\'c4\'b7\'bd\'ca\'bd\'bd\'bb\'b8\'b6\'ca\'fd\'be\'dd\'a1\'a3\'d5\'fd\'b3\'a3\'c7\'e9\'bf\'f6\'cf\'c2\'d3\'a6\'b8\'c3\'ca\'c7\'b1\'dc\'c3\'e2\'ca\'b9\'d3\'c3Block\'b5\'c4
\f2\fs28 \'a1\'a3\
\
\
\
APIManager  \
\
\
| | | | \
1.  \'b8\'e3\'c7\'e5\'b3\'fe\'d2\'aa\'bd\'e2\'be\'f6\'ce\'ca\'cc\'e2\'b5\'c4\'b3\'e4\'d2\'aa\'cc\'f5\'bc\'fe\
	\'b8\'e3\'c7\'e5\'b3\'fe\'d2\'b5\'ce\'f1\'b7\'bd\
	\'b4\'ab\'b5\'c3\'b2\'ce\'ca\'fd\'d4\'bd\'c9\'d9\'a3\'ac\'f1\'ee\'ba\'cf\'b6\'c8\'cf\'e0\'b6\'d4\'d4\'bd\'d0\'a1 \
2. \'ce\'ca\'cc\'e2\'b7\'d6\'c0\'e0\'a3\'ac \'b7\'d6\'c4\'a3\'bf\'e9\
\
3. \'b8\'e3\'c7\'e5\'b3\'fe\'ce\'ca\'cc\'e2\'d2\'c0\'c0\'b5\'b9\'d8\'cf\'b5\'a3\'ac \'bd\'a8\'c1\'a2\'c4\'a3\'bf\'e9\'bd\'bb\'c1\'f7\'b9\'e6\'b7\'b6\
\
4. \'cd\'c6\'d1\'dd\'d4\'a4\'b2\'e2\'ce\'b4\'c0\'b4\'bf\'c9\'c4\'dc\'b5\'c4\'d7\'df\'cf\'f2\'a3\'ac \'b1\'d8\'d2\'aa\'ca\'b1\'cc\'ed\'bc\'d3\'d0\'c2\'c4\'a3\'bf\'e9\'a1\'a3 \
\
5. \'bd\'e2\'be\'f6\'c0\'fa\'c0\'b4\'b9\'d8\'cf\'b5\'d6\'d0\'d7\'ee\'bb\'f9\'b4\'a1\'b5\'c4\'ce\'ca\'cc\'e2\'a3\'ac \'bb\'f9\'b4\'a1\'c4\'a3\'bf\'e9\'b6\'d1\'b5\'fe\'b3\'f6\'d5\'fb\'b8\'f6\'bc\'dc\'b9\'b9\
\
6. \'b4\'f2\'b5\'e3\'a3\'ac \'c5\'dc\'b5\'a5\'d4\'aa\'b2\'e2\'ca\'d4\'a3\'ac  \'c5\'dc\'d0\'d4\'c4\'dc\'b2\'e2\'ca\'d4\'a3\'ac \'b8\'f9\'be\'dd\'ca\'fd\'be\'dd\'d3\'c5\'bb\'af \'b6\'d4\'d3\'a6\'b5\'c4\'b5\'d8\'b7\'bd \'a1\'a3 \
\
\
\'d7\'d4\'b6\'a5\'cf\'f2\'cf\'c2\'c9\'e8\'bc\'c6\'a3\'ac \'d7\'d4\'b5\'d7\'cf\'f2\'c9\'cf\'ca\'b5\'cf\'d6\'a3\'ac  \'cf\'c8\'b2\'e2\'c1\'bf\'a3\'ac\'ba\'f3\'d3\'c5\'bb\'af\'a1\'a3 \
\
\'ca\'b2\'c3\'b4\'ca\'c7\'ba\'c3\'bc\'dc\'b9\'b9\
\

\b 1.  \'b4\'fa\'c2\'eb\'d5\'fb\'c6\'eb\'a3\'ac \'b7\'d6\'c0\'e0\'c3\'f7\'c8\'b7\'a3\'ac  \'c3\'bb\'d3\'d0common\'a3\'ac \'c3\'bb\'d3\'d0core\
2. \'b2\'bb\'d3\'c3\'ce\'c4\'b5\'b5\'a3\'ac\'bb\'f2\'ba\'dc\'c9\'d9\'ce\'c4\'b5\'b5\

\b0 3. \'cb\'bc\'c2\'b7\'ba\'cd\'b7\'bd\'b7\'a8\'d2\'aa\'cd\'b3\'d2\'bb\'a3\'ac \'be\'a1\'c1\'bf\'b2\'bb\'d2\'aa\'b6\'e0\'d4\'aa \
4. \'c3\'bb\'d3\'d0\'ba\'e1\'cf\'f2\'d2\'c0\'c0\'b5\'a3\'ac \'cd\'f2\'b2\'bb\'b5\'c3\'d2\'d1 \'bf\'e7\'b2\'e3\'b7\'c3\'ce\'ca\
5. \'b6\'d4\'d2\'b5\'ce\'f1\'b7\'bd\'d0\'e8\'d2\'aa\'cf\'de\'d6\'c6\'b5\'c4\'b5\'d8\'b7\'bd \'d7\'f6\'cf\'de\'d6\'c6\'a3\'ac \'b8\'c3\'c1\'e9\'bb\'ee\'b5\'c4\'b5\'d8\'b7\'bd \'d2\'aa\'c1\'e9\'bb\'ee\'b5\'c4\'ca\'b5\'cf\'d6\'cc\'f5\'bc\'fe\

\b 6. \'d2\'d7\'b2\'e2\'ca\'d4\'a3\'ac \'d2\'d7\'cd\'d8\'d5\'b9\

\b0 7. \'b1\'a3\'b3\'d6\'d2\'bb\'b6\'a8\'b5\'c4\'b3\'ac\'c7\'b0\'d0\'d4\
8. \'bd\'d3\'bf\'da\'c9\'d9\'a3\'ac \'bd\'d3\'bf\'da\'b2\'ce\'ca\'fd\'c9\'d9\
9\'a1\'a3 \'b8\'df\'d0\'d4\'c4\'dc\
\
\
\
\

\b view\'b2\'e3\'bc\'dc\'b9\'b9\

\b0 \'b2\'bb\'ba\'c3\'b5\'c4view\'b2\'e3\'bc\'dc\'b9\'b9\
1. \'b4\'fa\'c2\'eb\'bb\'ec\'c2\'d2\'b2\'bb\'b9\'e6\'b7\'b6\
2. \'b9\'fd\'b6\'e0\'bc\'cc\'b3\'d0\'a3\'ac \'b5\'bc\'d6\'c2 \'b8\'b4\'d4\'d3\'d2\'c0\'c0\'b5\'b9\'d8\'cf\'b5\
3.  \'c4\'a3\'bf\'e9\'bb\'af\'b3\'cc\'b6\'c8\'b2\'bb\'b8\'df\'a3\'ac \'d7\'e9\'bc\'fe\'bf\'c5\'c1\'a3\'b6\'c8\'b2\'bb\'b9\'bb\'cf\'b8\
4. \'ba\'e1\'cf\'f2\'d2\'c0\'c0\'b5\
5. \'bc\'dc\'b9\'b9\'c9\'e8\'bc\'c6\'ca\'d0\'c7\'f8\'b4\'ab\'b3\'d0\
\
\

\b view\'b2\'e3\'bc\'dc\'b9\'b9\'ca\'c7\'d7\'ee\'cc\'f9\'bd\'fc\'d2\'b5\'ce\'f1\'b5\'c4\'b5\'d7\'b2\'e3\'bc\'dc\'b9\'b9\

\b0 1. \'d6\'c6\'b6\'a8\'b9\'e6\'b7\'b6\'a3\'ac\
2. \'c9\'cf\'d3\'d0\'cb\'f9\'b4\'ab\'b3\'d0\'a3\'ac \'b0\'b4\'d5\'d5\'b9\'e6\'b7\'b6\'c0\'b4\
3. \'b9\'e6\'b7\'b6\'b5\'c4\'b8\'c4\'b1\'e4\
\
\
1. \'b4\'fa\'c2\'eb\'bd\'e1\'b9\'b9\'b5\'c4\'b9\'e6\'b6\'a8\
2. \'b9\'d8\'d3\'daview\'b5\'c4\'b2\'bc\'be\'d6\
3\'a1\'a3 \'ba\'ce\'ca\'b1\'ca\'b9\'d3\'c3sb\'a3\'ac \'ba\'ce\'ca\'b1\'ca\'b9\'d3\'c3nib\'a3\'ac \'ba\'ce\'ca\'b1\'ca\'b9\'d3\'c3\'b4\'fa\'c2\'eb\
4. \'ca\'c7\'b7\'f1\'d3\'d0\'b1\'d8\'d2\'aa\'cd\'b3\'d2\'bb\'c5\'c9\'c9\'faBaseViewController\
5. \'b7\'bd\'b1\'e3View\'b2\'bc\'be\'d6\'b5\'c4\'d0\'a1\'b9\'a4\'be\'df\
6. MVC \'a1\'a2MVVM \'a1\'a2MVCS \'a1\'a2VIPER\
7. \'b1\'be\'c3\'c5\'d0\'c4\'b7\'a8\
8\'a1\'a3 \'bf\'e7\'d2\'b5\'ce\'f1\'ca\'b1View\'b5\'c4\'b4\'a6\'c0\'ed\
9. \'c1\'f4\'b8\'f8\'c6\'c0\'c2\'db\'c7\'f8\'b8\'f7\'d6\'d6\'b2\'b9\
\
Viewcontroller \'b5\'c4\'b4\'fa\'c2\'eb\'b9\'e6\'b7\'b6\
\
\'b4\'fa\'c2\'eb\'b7\'d6\'c7\'f8\
#pragma mark - life cycle\
#pragma mark - UITableViewDelegate\
#pragma mark - CustomDelegate\
#pragma mark - event response      
\f3 \cf3 \cb4 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec3 button
\f1 \'a1\'a2
\f3 gestureRecognizer
\f1 \'b5\'c4\'cf\'ec\'d3\'a6\'ca\'c2\'bc\'fe
\f2 \cf0 \cb1 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \
#pragma mark - private methods\
#pragma mark - getters and setters\
\
1. \'ca\'f4\'d0\'d4\'b5\'c4\'b3\'f5\'ca\'bc\'bb\'af\'bd\'bb\'b8\'f8getter\'c8\'a5\'d7\'f6\'a1\'a3\'a3\'a8\'d5\'e2\'b8\'f6\'bf\'c9\'d2\'d4\'cc\'d6\'c2\'db\'a3\'a9\
2. viewDidAppear \'d7\'f6Notification\
3. viewDidLoad     \'d7\'f6addSubView\
4. \'b2\'bb\'d2\'aa\'d4\'d9viewDidLoad\'d7\'f6\'b3\'f5\'ca\'bc\'bb\'afView \'d4\'d9add\
\
view\'b5\'c4\'b2\'bc\'be\'d6\
Frame\'a3\'ac  autolayout\
\'cd\'c6\'bc\'f6Masonry\
\
sb\'a3\'ac nib\'a3\'ac \'b4\'fa\'c2\'ebview\
\'b4\'fa\'c2\'eb\'bd\'f8\'d0\'d0\'b2\'bc\'be\'d6  \
\'b8\'b4\'d4\'d3\'bd\'e7\'c3\'e6\'d4\'aa\'cb\'d8\'a3\'ac\'b8\'b4\'d4\'d3\'b6\'af\'bb\'ad\'bd\'bb\'bb\'a5\'b3\'a1\'b3\'a1\'be\'b0\
\
\
\'c5\'c9\'c9\'fabaseViewController\
\'bd\'a8\'d2\'e9\'ca\'b9\'d3\'c3AOP\'a3\'ac \'d2\'b5\'bd\'e7\'b5\'c4\'bf\'aa\'d4\'b4\'bf\'e2\'a3\'ba Aspects\
\
\
\
\
MVC\'b5\'c4\'c0\'ed\'bd\'e2\'a3\'ac MVC\'bb\'ae\'b7\'d6\'b5\'c4\'d5\'fd\'c8\'b7\'d7\'cb\'ca\'c6\
M\'a3\'ba\
	1. \'b8\'f8ViewController\'cc\'e1\'b9\'a9\'ca\'fd\'be\'dd\
	2. \'b8\'f8ViewController\'b4\'e6\'b4\'a2\'ca\'fd\'be\'dd\'cc\'e1\'b9\'a9\'bd\'d3\'bf\'da\
	3. \'cc\'e1\'b9\'a9\'be\'ad\'b9\'fd\'b3\'e9\'cf\'f3\'b5\'c4\'d2\'b5\'ce\'f1\'bb\'f9\'b1\'be\'d7\'e9\'bc\'fe\'a3\'ac \'b9\'a9controller\'b5\'f7\'b6\'c8\
C\'a3\'ba \
	1. \'b9\'dc\'c0\'edView container\'b5\'c4\'c9\'fa\'c3\'fc\'d6\'dc\'c6\'da\
	2. \'b8\'ba\'d4\'f0\'c9\'fa\'b3\'c9\'cb\'f9\'d3\'d0\'b5\'c4View\'ca\'b5\'c0\'fd\'a3\'ac\'b2\'a2\'b7\'c5\'c8\'ebview containner\
	3. \'bc\'e0\'cc\'fd\'c0\'b4\'d7\'d4View\'d3\'eb\'d2\'b5\'ce\'f1\'d3\'d0\'b9\'d8\'b5\'c4\'ca\'c2\'bc\'fe\'a3\'ac \'cd\'a8\'b9\'fd\'d3\'ebModel\'ba\'cf\'d7\'f7\'a3\'ac\'cd\'ea\'b3\'c9\'b6\'d4\'ca\'c2\'bc\'fe\'b5\'c4\'d2\'b5\'ce\'f1\'a1\'a3\
V:\
	1. \'cf\'ec\'d3\'a6\'d3\'eb\'d2\'b5\'ce\'f1\'ce\'de\'b9\'d8\'b5\'c4\'ca\'c2\'bc\'fe\'a3\'ac \'b2\'a2\'d2\'f2\'b4\'cb\'d2\'fd\'b7\'a2\'b6\'af\'bb\'ad\'d0\'a7\'b9\'fb\'a3\'ac\'d3\'eb\'b5\'e3\'bb\'f7\'b7\'b4\'c0\'a1\
	2. \'bd\'e7\'c3\'e6\'d4\'aa\'cb\'d8\'b1\'ed\'b4\'ef\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\
\

\b \

\b0 \
\
}